package com.gitee.qdbp.base.tags.shiro;

import javax.servlet.jsp.tagext.TagSupport;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;

/**
 * 登录用户信息标签
 *
 * @author zhaohuihua
 * @version 160128
 */
public class PrincipalTag extends TagSupport {

    /** 版本序列号 **/
    private static final long serialVersionUID = -7127062753162824027L;

    /** 保存用户信息的变量名 **/
    private String var;

    /**
     * 设置变量名
     *
     * @param var 变量名
     */
    public void setVar(String var) {
        this.var = var;
    }

    /**
     * 标签处理方法
     *
     * @return 下一步处理方式
     */
    @Override
    public int doStartTag() {
        // 获取用户信息
        Subject current = SecurityUtils.getSubject();
        Object principal = current.getPrincipal();
        // 将用户信息保存到值栈中
        pageContext.setAttribute(var, principal);
        if (principal == null) {
            return SKIP_BODY;
        } else {
            return EVAL_PAGE;
        }
    }
}
